package edu.ccut.saturn.studio.wfg.wizard;

import edu.ccut.saturn.studio.core.util.wizard.SaturnWizard;
import edu.ccut.saturn.studio.wfg.editor.WfgEditors;

public class WfgWizard extends SaturnWizard {

	@Override
	public void addPages() {
		addPage(new WfgWizardsPage());
	}

	@Override
	protected String getEditorID() {
		return WfgEditors.WfgEditors;
	}

	@Override
	protected String getFileName() {
		return super.getValues().get(WfgWizardsPage.Wfg_WIZARD_FILE_NAME)
				+ ".wf";
	}

	@Override
	protected String getTemplatePath() {
		return "template/wfg.ftl";
	}
}

/**
 * @param fSelection
 * @return 0. 工程 1. 工程名 2. 文件绝对路径 3. 源文件夹名 4. 工作空间路径 5. 文件的包名
 */
// private Object[] getFromSelection(IStructuredSelection fSelection) {
// Object[] result = new Object[6];
// Object object = fSelection.getFirstElement();
// if (object instanceof IJavaElement) {
//
// IJavaElement element = (IJavaElement) object;
// result[0] = element.getResource().getProject();
// result[1] = ((IProject) result[0]).getName();
// result[2] = element.getResource().getLocation().toOSString();
// String pStr = ((String) result[2]).substring(((String)
// result[2]).indexOf((String) result[1]));
// String aaa[] = pStr.split(SaturnName.FOUR_LINE);
// result[3] = aaa[1];
// result[4] = ((String) result[2]).substring(0, ((String)
// result[2]).indexOf((String) result[1]));
// result[5] = pStr.substring(pStr.indexOf(aaa[1]) + aaa[1].length() + 1) +
// SaturnName.SLANT_LINE;
//
// } else if (object instanceof IFolder) {
//
// if (!SaturnName.WORK_FLOW_NAME.equals(object.toString().substring(
// object.toString().lastIndexOf(SaturnName.SLANT_LINE) + 1))) {
// MessageDialog.openInformation(null, Messages.getString("WfgWizard.1"),
// //$NON-NLS-1$
// Messages.getString("WfgWizard.2")); //$NON-NLS-1$
// return null;
// }
// IFolder element = (IFolder) object;
// result[0] = element.getProject();
// result[1] = ((IProject) result[0]).getName();
// result[2] = element.getLocation().toOSString();
// String pStr = ((String) result[2]).substring(((String)
// result[2]).indexOf((String) result[1]));
// String aaa[] = pStr.split(SaturnName.FOUR_LINE);
// result[3] = aaa[1];
// result[4] = ((String) result[2]).substring(0, ((String)
// result[2]).indexOf((String) result[1]));
// result[5] = pStr.substring(pStr.indexOf(aaa[1]) + aaa[1].length() + 1) +
// SaturnName.SLANT_LINE;
// }
// return result;
// }
// public void init(IWorkbench workbench, IStructuredSelection selection) {
// fSelection = selection;
// setWindowTitle(WIZARD_WINDOW_TITLE);
// }
// private void openEditor(final IFile file) {
// if (file != null) {
// getShell().getDisplay().asyncExec(new Runnable() {
// public void run() {
// try {
// IWorkbenchPage page = PlatformUI.getWorkbench()
// .getActiveWorkbenchWindow().getActivePage();
// IDE.setDefaultEditor(file, SaturnName.WORK_FLOW_EDITOR_NAME);
// IDE.openEditor(page, file, true);
// } catch (PartInitException e) {
//
// }
// }
// });
// }
// }
// @Override
// public boolean performFinish() {
// SaturnInformationNode info = new SaturnInformationNode();
// info.setKey(page.getTextKey());
// info.setName(page.getTextName());
// info.setDescription(page.getTextDec());
// info.setAuthor(page.getTextAuthor());
// info.setVersion(page.getTextVer());
//
// SaturnStartNode saturnStartNode = new SaturnStartNode();
// saturnStartNode.setName(Messages.getString("WfgWizard.3")); //$NON-NLS-1$
// saturnStartNode.setStartPolicy("1");
// saturnStartNode.setTimeLimit("");
// saturnStartNode.setOffsetMode("1");
// saturnStartNode.setDescription("");
//
// SaturnEndNode saturnEndNode = new SaturnEndNode();
// saturnEndNode.setName(Messages.getString("WfgWizard.4")); //$NON-NLS-1$
// saturnEndNode.setPolymeMode("1");
// saturnEndNode.setDescription("");
//
// String targePath = filePath + SaturnName.BACK_SLANT_LINE;
//
// TemplateCodeGenerate testG = new TemplateCodeGenerate();
// Map<String, Shape> propMap = new HashMap<String, Shape>();
// propMap.put("infoCreater", info);
//
// propMap.put("startCreater", saturnStartNode);
// propMap.put("endCreater", saturnEndNode);
//
// testG.buildFile("/edu/ccut/saturn/studio/wfg/wizard/wfg.tfl", propMap,
// targePath, info.getName() + SaturnName.WORK_FLOW_EXTENSION_NAME);
//
// String filePathString = SaturnName.SLANT_LINE + srcName
// + SaturnName.SLANT_LINE + projectFilePath + page.getTextName()
// + SaturnName.WORK_FLOW_EXTENSION_NAME;
// refreshOutputDir(SaturnName.BACK_SLANT_LINE + projectName
// + SaturnName.SLANT_LINE);
// IFile fileTemp = (IFile) project.findMember(filePathString);
// openEditor(fileTemp);
// return true;
// }
// private static void refreshOutputDir(String outputdir) {
// IResource bufferRes = findMember(ResourcesPlugin.getWorkspace().getRoot(),
// outputdir);
//
// if (bufferRes != null && bufferRes.isAccessible()) {
// try {
// bufferRes.refreshLocal(IResource.DEPTH_INFINITE, null);
// } catch (CoreException e) {
// }
// }
// }
//
// private static IResource findMember(IWorkspaceRoot root, String path) {
// Path pathOrNull = pathOrNull(path);
// if (pathOrNull == null)
// return null;
// return root.findMember(pathOrNull);
// }
//
// private static Path pathOrNull(String p) {
// if (p == null || p.trim().length() == 0) {
// return null;
// } else {
// return new Path(p);
// }
// }
